1. Field of the Invention
This invention relates generally to rotary encoded switches, or manually operable encoders, used in electronic systems, and more specifically, to a system which simulates a mechanical detent to facilitate control of user input from a manually operable encoder to an electronic system.
2. Statement of the Problem
Conventionally, manually operable rotary potentiometers using electrically resistive components have enabled users to provide input to electronic systems, such as oscilloscopes. Often, these rotary potentiometers have a physically detented center point representing a nominal center position of the potentiometer. This detented center position facilitates setting the potentiometer to the center position as the user encounters a noticeable impediment to rotation of the shaft when the potentiometer is rotated past the detented center position. This center position is hereinafter referred to as a preset point.
The use of microprocessors in electronic systems has led to the use of manually operable encoders, such as rotary encoded switches and rotary pulse generators, rather than potentiometers, as user input devices. An encoder, like a potentiometer, has a shaft connected to a rotatable element which rotates when a user turns the shaft or a knob attached to the shaft. Unlike a potentiometer, which is an analog device used for providing the associated electronic system with a variable resistive load, an encoder typically provides a passive digital indication of rotational position, which is read by a microprocessor to provide a signal indicative of a rotational displacement of the rotatable element. This signal is typically output to an associated electronic system to control a display or readout. A rotary pulse generator is similar to an encoder, but typically provides an active digital positional output signal, rather than a passive digital positional indication. The term "encoder" is hereinafter used to mean both "encoder" and "rotary pulse generator," unless "rotary pulse generator" is specifically indicated.
In further contrast to a potentiometer, there are no physical limits on the extent of rotation of the rotatable element in the encoder. The rotatable element can be rotated indefinitely in either direction without encountering a "stop". The rotatable element can be attached to a shaft, as in a rotary encoder, or it can be free to rotate in any direction, such as in the case of a "mouse," or a trackball, or a "joystick." The logical concept of a preset point still applies to encoders, however, and this document refers to the concept of a predetermined nominal encoder position indication as a "virtual" preset point.
The absence of physical rotational limits makes it difficult to quickly return to a preset point when using an encoder, as the user must typically focus on the readout or display associated with the encoder, while adjusting the encoder to the preset point in order, for example, to center the data being displayed via the readout. Since feedback from the readout to the user is visual, and since the displayed data may be changing or moving rapidly, then the user, trying to "zero in" on the preset point, often overshoots it, and goes through a series of iterations before setting the encoder exactly to the preset point. This problem is compounded when "acceleration" is used in the associated microprocessor controlling the input from the encoder to the electronic system.
Acceleration is a technique commonly used in electronic systems having encoders. Acceleration is used to allow an encoder to provide a large change in the encoder output with a relatively small rotational adjustment. When the encoder is rotated slowly, there is a one-to-one relationship between the rotational position of the encoder and the encoder output, which output is processed by the microprocessor before being sent to the associated electronic system. When the velocity of rotation of the encoder reaches a certain value, however, the microprocessor multiplies the encoder output by an acceleration factor, the value of which increases exponentially with the rotational velocity of the encoder shaft. This allows the user to effect a larger change in the output without having to rotate the encoder as far as would be necessary if the encoder were being rotated slowly.
3. Solution to the Problem
The system of the present invention models the tactile feedback of a physical detent by temporarily freezing the encoder output when the encoder is rotated past the virtual preset point (hereinafter "preset point"). The preset point for a given encoder is typically a position of the encoder rotatable element which corresponds to a predetermined signal. The preset point is usually a system default value stored in the microprocessor, although the preset point is also typically adjustable by a system user. When the user rotates the encoder past the preset point, the present system employs a time delay, during which, the output from the encoder to the associated electronic system is maintained at the preset point value. This delay is long enough to cause the user to physically run out of wrist or arm movement after passing through the preset point. More specifically, when the user rotates the encoder past the preset point at a normal, or particularly, at a fast speed, the delay is such that the output from the encoder to the electronic system is "frozen" at the preset point for a length of time sufficient for the user to complete the particular physical adjustment of the encoder. After the delay has expired, the preset point value continues to be output to the electronic system until the user again moves or rotates the encoder. Therefore, the user, having moved the encoder past a preset point, normally completes a particular encoder adjustment before the delay expires, during which time a constant preset point signal to the electronic system is maintained in place of the actual encoder position indication.
In order for the electronic system to recognize that the user desires to adjust the encoder past the preset point, the user need only to continue to rotate the encoder after the preset point has been crossed. After the delay has expired, actual encoder output to the electronic system is resumed when further movement of the encoder occurs. Therefore, regardless of the speed of rotation of the encoder by the user, or the acceleration factor implemented in the controlling microprocessor, the electronic system, for a predetermined length of time, "sees" the encoder as being set to the preset point, even if the user adjusts the encoder past the preset point. If the user does, in fact, want to advance or adjust the encoder past the preset point, the delay will have expired by the time the user repositions his hand on the encoder knob or the trackball, or repositions the mouse, thus allowing the user to continue to adjust the encoder beyond the preset point.
The method of the present invention also allows greater degrees of acceleration to be added to the encoder output, without compromising the user's ability to quickly adjust the encoder to the preset point, as any overshooting of the preset point is effectively nullified by the imposed delay.